package com.ct.service;

import java.util.List;

import com.ct.entity.po.Travel;
import com.ct.entity.query.TravelQuery;
import com.ct.entity.vo.PaginationResultVO;

/**
 * 出差表 业务接口
 */
public interface TravelService {

    /**
     * 根据条件查询列表
     */
    List<Travel> findListByParam(TravelQuery param);

    /**
     * 根据条件查询列表
     */
    Integer findCountByParam(TravelQuery param);

    /**
     * 分页查询
     */
    PaginationResultVO<Travel> findListByPage(TravelQuery param);

    /**
     * 新增
     */
    Integer add(Travel bean);

    /**
     * 批量新增
     */
    Integer addBatch(List<Travel> listBean);

    /**
     * 新增出差申请
     */
    Integer addTravel(Travel travel);

    /**
     * 批量新增/修改
     */
    Integer addOrUpdateBatch(List<Travel> listBean);

    /**
     * 多条件更新
     */
    Integer updateByParam(Travel bean, TravelQuery param);

    /**
     * 多条件删除
     */
    Integer deleteByParam(TravelQuery param);

    /**
     * 根据TravelId查询对象
     */
    Travel getTravelByTravelId(Integer travelId);

    /**
     * 根据TravelId修改
     */
    Integer updateTravelByTravelId(Travel bean, Integer travelId);

    /**
     * 根据TravelId删除
     */
    Integer deleteTravelByTravelId(Integer travelId);

    /*
    *
    * */
    List<Travel> getAllTravelsByIdList(List<String> travelIdList);

    /**
     * 根据userId查询travelList(筛选后的List)
     * 
     * @param userId
     * @return
     */
    List<Travel> findFinalListByUserId(String userId);

    List<Travel> getAllTravelListByUserId(String userId);
}